#ifndef ATTRIUBUTE_H
#define ATTRIUBUTE_H

#include <QLabel>
//#include "dragwidget.h"
class QDragEnterEvent;
class QDragMoveEvent;
class QFrame;
class QDomNode;
class QDomElement;
class AttributesModel;

class Attribute : public QObject
{
	Q_OBJECT
	int _nom;
	QString _alias;
	QString _name;
	QString _type;
	int  _length; // длина атрибута
	unsigned char  _idconf; // режим присвоения идентификационных номеров
	unsigned char _opened;  // список значений атрибутов
	
	bool _used;
	bool _plus;
	bool _selected;
	QPixmap _pixmap;
public:
    Attribute(const QString &text, QObject *parent, QString name,QString type,int nom=0);
	QPixmap dataOut();
	
	static int num;
	void xml(QDomNode &node);
	int order();
	void setUsed(bool used=true);
	void setPlus(bool plus=false);
	bool plus(){return _plus;}
	bool used(){return _used;}
// длина атрибута
	void setLength(int length){_length=length;}
	int length(){return _length;}
// режим присвоения идентификационных номеров
	void setIdConf(unsigned char idconf){_idconf = idconf;}
	unsigned char idConf(){return _idconf;}
// список значений атрибутов
	void setOpened(unsigned char opened){_opened = opened;}
	unsigned char opened(){return _opened;}
// set order
	void setOrder(int order);
	QString alias(){return _alias;}
	void setAlias(const QString &val);
	QString name(){return _name;}
	void setName(const QString &val);
	QString type(){return _type;}
	void setType(const QString &val);
	void copyLabel(Attribute *label);
	void setSelected(bool s);
	QDomElement serverFormat();
	QFont font();
	QColor color();
protected:
    void mouseDoubleClickEvent(QMouseEvent *event);

public slots:
	void slotEdit();
signals:
	void attrChanged(int oldnom,Attribute *label);  
	void sigSelected();
};

//Q_DECLARE_METATYPE(Attribute*)

#endif
